/**
 * 根据url 获取相应域名或者ip地址
 * @param uri
 * @returns {string|RegExpExecArray}
 */
export function callBackDomain(uri) {
  const urlReg =
    /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?/
  if (undefined !== uri && uri !== null && uri !== '') {
    return urlReg.exec(uri)
  } else {
    return ''
  }
}
// 获得页面向左、向上卷动的距离
export function getScroll() {
  return {
    left: document.documentElement.scrollLeft || document.body.scrollLeft || 0,
    top: document.documentElement.scrollTop || document.body.scrollTop || 0
  }
}

/**
 * 获取系统时间
 * @returns {{date: string, day: string}}
 */
export function getTimes() {
  const date = new Date()
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const dates = date.getDate()
  const day = date.getDay()
  const array = [
    '星期日',
    '星期一',
    '星期二',
    '星期三',
    '星期四',
    '星期五',
    '星期六'
  ]

  return { date: `${year}年${month}月${dates}日`, day: array[day] }
}

export function dateFormat(fmt, date) {
  let ret
  const opt = {
    'Y+': date.getFullYear().toString(), // 年
    'M+': (date.getMonth() + 1).toString(), // 月
    'd+': date.getDate().toString(), // 日
    'H+': date.getHours().toString(), // 时
    'm+': date.getMinutes().toString(), // 分
    'S+': date.getSeconds().toString() // 秒
  }
  for (const k in opt) {
    ret = new RegExp(`(${k})`).exec(fmt)
    if (ret) {
      if (ret[1].length === 1) {
        fmt = fmt.replace(ret[1], opt[k])
      } else {
        fmt = fmt.replace(ret[1], opt[k].padStart(ret[1].length, '0'))
      }
    }
  }
  return fmt
}

/**
 * 时间字段截取
 * @param str 完整时间
 * @param type 截取类型
 */
export function dateSubString(str, type) {
  const day = new Date(str)
  if (type === 'day') {
    return day.getDate().toString()
  } else {
    return day.getFullYear() + '-' + (day.getMonth() + 1).toString()
  }
}
